linux: clean up setup_arch_post.h
authorcl349@firebug.cl.cam.ac.uk <cl349@firebug.cl.cam.ac.uk>
Thu, 2 Mar 2006 15:33:47 +0000 (15:33 +0000)
committercl349@firebug.cl.cam.ac.uk <cl349@firebug.cl.cam.ac.uk>
Thu, 2 Mar 2006 15:33:47 +0000 (15:33 +0000)
- machine_specific_memory_setup() was unused on x86-64
- machine_specific_modify_cpu_capabilities() must not be __init (for CPU hotplug)
- machine_specific_modify_cpu_capabilities() should be called in similar ways on 32- and 64-bits

From: Jan Beulich <JBeulich@novell.com>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
linux-2.6-xen-sparse/arch/x86_64/kernel/setup-xen.c
linux-2.6-xen-sparse/include/asm-i386/mach-xen/setup_arch_post.h
linux-2.6-xen-sparse/include/asm-x86_64/mach-xen/setup_arch_post.h

index f6b34710414b5bb4cd80bd39cfab65a0f8dd423c..7827ee089c1450f475c772332921e30c7431c06c 100644 (file)
@@ -82,6 +82,8 @@
 extern unsigned long start_pfn;
 extern struct edid_info edid_info;
 
+extern void machine_specific_modify_cpu_capabilities(struct cpuinfo_x86 *c);
+
 shared_info_t *HYPERVISOR_shared_info = (shared_info_t *)empty_zero_page;
 EXPORT_SYMBOL(HYPERVISOR_shared_info);
 
@@ -1405,6 +1407,8 @@ void __cpuinit identify_cpu(struct cpuinfo_x86 *c)
        select_idle_routine(c);
        detect_ht(c); 
 
+       machine_specific_modify_cpu_capabilities(c);
+
        /*
         * On SMP, boot_cpu_data holds the common feature set between
         * all CPUs; so make sure that we indicate which features are
index 8584cb3c055671341bc0024f0935ec41233553c4..49c3f2a641ca8276f229b787bd9798a2b2d99d22 100644 (file)
@@ -16,7 +16,7 @@ static char * __init machine_specific_memory_setup(void)
        return "Xen";
 }
 
-void __init machine_specific_modify_cpu_capabilities(struct cpuinfo_x86 *c)
+void __devinit machine_specific_modify_cpu_capabilities(struct cpuinfo_x86 *c)
 {
        clear_bit(X86_FEATURE_VME, c->x86_capability);
        clear_bit(X86_FEATURE_DE, c->x86_capability);
index 84186bbe9660624c1651ab6828696988da6a2cbf..b90a871735ec8e4adfa4366b810bb4ce9081c58a 100644 (file)
@@ -1,28 +1,12 @@
 /**
- * machine_specific_memory_setup - Hook for machine specific memory setup.
+ * machine_specific_* - Hooks for machine specific setup.
  *
  * Description:
  *     This is included late in kernel/setup.c so that it can make
  *     use of all of the static functions.
  **/
 
-static char * __init machine_specific_memory_setup(void)
-{
-       char *who;
-       unsigned long start_pfn, max_pfn;
-
-       who = "Xen";
-
-       start_pfn = 0;
-       max_pfn = xen_start_info->nr_pages;
-
-       e820.nr_map = 0;
-       add_memory_region(PFN_PHYS(start_pfn), PFN_PHYS(max_pfn) - PFN_PHYS(start_pfn), E820_RAM);
-
-       return who;
-}
-
-void __init machine_specific_modify_cpu_capabilities(struct cpuinfo_x86 *c)
+void __cpuinit machine_specific_modify_cpu_capabilities(struct cpuinfo_x86 *c)
 {
        clear_bit(X86_FEATURE_VME, c->x86_capability);
        clear_bit(X86_FEATURE_DE, c->x86_capability);